﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace proyectoENS

{
    public partial class frmMostrarTutores : Form
    {
        private static frmMostrarTutores Instancia;
        public static frmMostrarTutores onlyInstancia
        {
            get
            {
                if (Instancia == null || Instancia.IsDisposed)
                    Instancia = new frmMostrarTutores();
                return Instancia;
            }
        }
        private frmMostrarTutores()
        {
            InitializeComponent();
        }
        proyectoENSEntities db = new proyectoENSEntities();
        public Alumnos unAlumno = new Alumnos();
        List<tutor> lista = new List<tutor>();
        int n;
        private void frmMostrarTutores_Load_1(object sender, EventArgs e)
        {
            //List<tutor> lista = new List<tutor>();
            lista = DALTutor.getTutoresByDni(unAlumno.dni);

            foreach (tutor x in lista)
            {
                Button btnModificar = new System.Windows.Forms.Button();
                btnModificar.Location = new System.Drawing.Point(317, 284);
                btnModificar.Name = "btnModificar";
                btnModificar.Size = new System.Drawing.Size(75, 23);
                btnModificar.TabIndex = 18;
                btnModificar.Text = "Modificar";
                btnModificar.UseVisualStyleBackColor = true;
                btnModificar.Click += new System.EventHandler(btnModificar_Click_1);
                Button btnEliminar = new System.Windows.Forms.Button();
                btnEliminar.Location = new System.Drawing.Point(317, 254);
                btnEliminar.Name = "btnModificar";
                btnEliminar.Size = new System.Drawing.Size(75, 23);
                btnEliminar.TabIndex = 18;
                btnEliminar.Text = "Eliminar";
                btnEliminar.UseVisualStyleBackColor = true;
                btnEliminar.Click += new System.EventHandler(btnEliminar_Click_1);
                generarTabPage(x, tabControl1, btnModificar,"Tutor" + (tabControl1.TabPages.Count+1), btnEliminar);
            }
            TextBox txt = new System.Windows.Forms.TextBox();
            Button btnGuardar = new System.Windows.Forms.Button();
            btnGuardar.Location = new System.Drawing.Point(317, 284);
            btnGuardar.Name = "btnGuardar";
            btnGuardar.Size = new System.Drawing.Size(75, 23);
            btnGuardar.TabIndex = 18;
            btnGuardar.Text = "Guardar";
            btnGuardar.UseVisualStyleBackColor = true;
            btnGuardar.Click += new System.EventHandler(btnGuardar_Click_1);
            tutor unTutor = new tutor();
            Button btnBuscar = new System.Windows.Forms.Button();
            btnBuscar.Location = new System.Drawing.Point(317, 254);
            btnBuscar.Name = "btnBuscar";
            btnBuscar.Size = new System.Drawing.Size(75, 23);
            btnBuscar.Text = "Buscar";
            btnBuscar.UseVisualStyleBackColor = true;
            btnBuscar.Click +=new EventHandler(btnBuscar_Click_1);
            txt.Location = new System.Drawing.Point(178, 38);
            txt.Name = "txt";
            txt.Size = new System.Drawing.Size(100, 20);
            txt.TabIndex = 1;
            txt.Enabled = true;
            txt.MaxLength = 8;
            txt.Leave +=new EventHandler(txt_Leave);
            generarTabPage(unTutor, tabControl1, btnBuscar, "    +", btnGuardar, txt);
            //generarTabPage(unTutor, tabControl1, btnGuardar, "    +");
        }
        private void btnBuscar_Click_1(object sender, EventArgs e)
        {
            frmBuscarTutor frm = new frmBuscarTutor();
            frm.ShowDialog();
            foreach (Control t in tabControl1.SelectedTab.Controls)
            {
                if (frm.selected != null)
                {
                    if (t is TextBox)
                    {
                        if (t.Name == "txt")
                            t.Text = frm.selected.dni;
                        if (t.Name == "txtNombres")
                            t.Text = frm.selected.nombres;
                        if (t.Name == "txtApellidos")
                            t.Text = frm.selected.apellidos;
                        if (t.Name == "txtDomicilio")
                            t.Text = frm.selected.domicilio;
                        if (t.Name == "txtTel")
                            t.Text = frm.selected.telefono1;
                        if (t.Name == "txtTel2")
                            t.Text = frm.selected.telefono2;
                        if (t.Name == "txtLugarTrabajo")
                            t.Text = frm.selected.lugarTrabajo;
                        if (t.Name == "txtTelTrabajo")
                            t.Text = frm.selected.telefonoTrabajo;
                        if (t.Name == "txtMail")
                            t.Text = frm.selected.mail;
                    }
                }
            }
        }
        private void btnEliminar_Click_1(object sender, EventArgs e)
        {
            tutor temp = new tutor();
            temp = lista[tabControl1.SelectedIndex];
            DALTutor.elminarTutor(temp, unAlumno.id);
            foreach (TabPage t in tabControl1.TabPages)
            {
                tabControl1.TabPages.Remove(t);
            }
            frmMostrarTutores_Load_1(null, null);
            tabControl1.SelectTab(tabControl1.TabPages.Count - 2);
        }
        private void btnModificar_Click_1(object sender, EventArgs e)
        {
            //lista = DALTutor.getTutoresByDni(unAlumno.dni);
            foreach (Control b in tabControl1.SelectedTab.Controls)
            {
                if (b is Button)
                {
                    if (b.Text == "Modificar")
                    {
                        foreach (Control c in tabControl1.SelectedTab.Controls)
                        {
                            if (c is TextBox)
                            {
                                c.Enabled = true;
                            }
                        }
                        b.Text = "Guardar";
                    }
                    else
                    {
                        if (b.Text == "Guardar")
                        {
                            foreach (Control t in tabControl1.SelectedTab.Controls)
                            {
                                if (t is TextBox)
                                {
                                    if (t.Name == "txtTel2")
                                    {
                                        bool tmp = int.TryParse(t.Text, out n);
                                        if (tmp == false)
                                        {
                                            MessageBox.Show("El telefono ingresado es incorrecto");
                                            b.Text = "Modificar";
                                            t.Text = lista[tabControl1.SelectedIndex].telefono2;
                                            return;
                                        }
                                        lista[tabControl1.SelectedIndex].telefono2 = t.Text;
                                    }
                                    if (t.Name == "txtDni")
                                    {
                                        if (t.Text.Length > 8)
                                        {
                                            MessageBox.Show("El DNI ingresado es incorrecto");
                                            b.Text = "Modificar";
                                            t.Text = lista[tabControl1.SelectedIndex].dni;
                                            return;
                                        }
                                        bool tmp = int.TryParse(t.Text, out n);
                                        if (tmp == false)
                                        {
                                            MessageBox.Show("El DNI ingresado es incorrecto");
                                            b.Text = "Modificar";
                                            t.Text = lista[tabControl1.SelectedIndex].dni;
                                            return;
                                        }
                                        lista[tabControl1.SelectedIndex].dni = t.Text;
                                    }
                                    if (t.Name == "txtApellidos")
                                        lista[tabControl1.SelectedIndex].apellidos = t.Text;
                                    if (t.Name == "txtTel")
                                    {
                                        bool tmp = int.TryParse(t.Text, out n);
                                        if (tmp == false)
                                        {
                                            MessageBox.Show("El telefono ingresado es incorrecto");
                                            b.Text = "Modificar";
                                            t.Text = lista[tabControl1.SelectedIndex].telefono1;
                                            return;
                                        }
                                        lista[tabControl1.SelectedIndex].telefono1 = t.Text;
                                    }
                                    if (t.Name == "txtNombres")
                                        lista[tabControl1.SelectedIndex].nombres = t.Text;
                                    if (t.Name == "txtMail")
                                        lista[tabControl1.SelectedIndex].mail = t.Text;
                                    if (t.Name == "txtDomicilio")
                                        lista[tabControl1.SelectedIndex].domicilio = t.Text;
                                    if (t.Name == "txtLugarTrabajo")
                                        lista[tabControl1.SelectedIndex].lugarTrabajo = t.Text;
                                    if (t.Name == "txtTelTrabajo")
                                    {
                                        bool tmp = int.TryParse(t.Text, out n);
                                        if (tmp == false)
                                        {
                                            MessageBox.Show("El telefono ingresado es incorrecto");
                                            b.Text = "Modificar";
                                            t.Text = lista[tabControl1.SelectedIndex].telefonoTrabajo;
                                            return;
                                        }
                                        lista[tabControl1.SelectedIndex].telefonoTrabajo = t.Text;
                                    }
                                }
                            }
                            b.Text = "Modificar";
                        }
                        DALTutor.editTutor(lista[tabControl1.SelectedIndex]);
                        foreach (Control a in tabControl1.SelectedTab.Controls)
                        {
                            if (a is TextBox)
                                a.Enabled = false;
                        }
                    }
                }
            }
        }
        public void txt_Leave(object sender, EventArgs e)
        {
            
                List<tutor> temp = new List<tutor>();
                foreach (Control a in tabControl1.SelectedTab.Controls)
                {
                    if (a is TextBox)
                    {
                        if (a.Name == "txt")
                        {
                            temp = DALTutor.getTutoresByDniTutor(a.Text);
                            if (temp.Count == 1)
                            {
                                foreach (Control t in tabControl1.SelectedTab.Controls)
                                {
                                    if (t is TextBox)
                                    {
                                        if (t.Name == "txtNombres")
                                            t.Text = temp[0].nombres;
                                        if (t.Name == "txtApellidos")
                                            t.Text = temp[0].apellidos;
                                        if (t.Name == "txtDomicilio")
                                            t.Text = temp[0].domicilio;
                                        if (t.Name == "txtTel")
                                            t.Text = temp[0].telefono1;
                                        if (t.Name == "txtTel2")
                                            t.Text = temp[0].telefono2;
                                        if (t.Name == "txtLugarTrabajo")
                                            t.Text = temp[0].lugarTrabajo;
                                        if (t.Name == "txtTelTrabajo")
                                            t.Text = temp[0].telefonoTrabajo;
                                        if (t.Name == "txtMail")
                                            t.Text = temp[0].mail;
                                    }
                                }
                            }
                        }
                    }
            }
        }
        private void btnGuardar_Click_1(object sender, EventArgs e)
        {
            tutor temp = new tutor();
            bool a = false;
            foreach (Control t in tabControl1.SelectedTab.Controls)
            {
                if (t is TextBox)
                {
                    if (t.Name == "txtNombres")
                        temp.nombres = t.Text;
                    if (t.Name == "txtApellidos")
                        temp.apellidos = t.Text;
                    if (t.Name == "txt")
                    {
                        if (t.Text.Length > 8)
                        {
                            MessageBox.Show("El DNI ingresado es incorrecto");
                            return;
                        }
                        bool tmp = int.TryParse(t.Text, out n);
                        if (tmp == false)
                        {
                            MessageBox.Show("El DNI ingresado es incorrecto");
                            return;
                        }
                        temp.dni = t.Text;
                    }
                    if (t.Name == "txtDomicilio")
                        temp.domicilio = t.Text;
                    if (t.Name == "txtTel")
                    {
                        bool tmp = int.TryParse(t.Text, out n);
                        if (tmp == false)
                        {
                            MessageBox.Show("El telefono 1 ingresado es incorrecto");
                            return;
                        }
                        temp.telefono1 = t.Text;
                    }
                    if (t.Name == "txtTel2")
                    {
                        bool tmp = int.TryParse(t.Text, out n);
                        if (tmp == false)
                        {
                            MessageBox.Show("El telefono 2 ingresado es incorrecto");
                            return;
                        }
                        temp.telefono2 = t.Text;
                    }
                    if (t.Name == "txtLugarTrabajo")
                        temp.lugarTrabajo = t.Text;
                    if (t.Name == "txtTelTrabajo")
                    {
                        bool tmp = int.TryParse(t.Text, out n);
                        if (tmp == false)
                        {
                            MessageBox.Show("El telefono del trabajo ingresado es incorrecto");
                            return;
                        }
                        temp.telefonoTrabajo = t.Text;
                    }
                    if (t.Name == "txtMail")
                        temp.mail = t.Text;
                }
            }
            foreach (tutor t in lista)
            {
                if (t.dni == temp.dni)
                    a = true;
            }
            if (a == true)
            {
                MessageBox.Show("El alumno ya tiene asignado este tutor");
            }
            else
            {
            DALTutor.guardarTutor(temp, unAlumno.id);
            }
            foreach (TabPage t in tabControl1.TabPages)
            {
                tabControl1.TabPages.Remove(t);
            }
            frmMostrarTutores_Load_1(null, null);
            tabControl1.SelectTab(tabControl1.TabPages.Count - 2);
        }
        public static void generarTabPage(tutor unTutor, TabControl tabControl1, Button b = null, string name = null, Button e = null, TextBox t = null)
        {

            TabPage nuevoTutor = new TabPage();
            tabControl1.TabPages.Add(nuevoTutor);
            nuevoTutor.Text = name;
            nuevoTutor.BackColor = System.Drawing.Color.White;
            //TextBox text = new System.Windows.Forms.TextBox();
            //text.Location = new System.Drawing.Point(178, 38);
            //text.Name = "txtDni";
            //text.Size = new System.Drawing.Size(100, 20);
            //text.TabIndex = 0;
            //text.Text = "hola";
            //nuevoTutor.Controls.Add(text);

            TextBox txtDni = new System.Windows.Forms.TextBox();
            TextBox txtApellidos = new System.Windows.Forms.TextBox();
            TextBox txtNombres = new System.Windows.Forms.TextBox();
            TextBox txtDomicilio = new System.Windows.Forms.TextBox();
            TextBox txtTel = new System.Windows.Forms.TextBox();
            TextBox txtTel2 = new System.Windows.Forms.TextBox();
            TextBox txtMail = new System.Windows.Forms.TextBox();
            TextBox txtLugarTrabajo = new System.Windows.Forms.TextBox();
            TextBox txtTelTrabajo = new System.Windows.Forms.TextBox();
            Label lblDni = new System.Windows.Forms.Label();
            Label lblApellidos = new System.Windows.Forms.Label();
            Label lblNombres = new System.Windows.Forms.Label();
            Label lblDomicilio = new System.Windows.Forms.Label();
            Label lblTel = new System.Windows.Forms.Label();
            Label lblTel2 = new System.Windows.Forms.Label();
            Label lblMail = new System.Windows.Forms.Label();
            Label lblLugarTrabajo = new System.Windows.Forms.Label();
            Label lblTelTrabajo = new System.Windows.Forms.Label();

            // 
            // txtDni
            // 
            txtDni.Location = new System.Drawing.Point(178, 38);
            txtDni.Name = "txtDni";
            txtDni.Size = new System.Drawing.Size(100, 20);
            txtDni.TabIndex = 0;
            txtDni.Text = unTutor.dni;
            txtDni.Enabled = false;
            txtDni.MaxLength = 8;
            //// 
            //// txtApellidos
            //// 
            txtApellidos.Location = new System.Drawing.Point(178, 64);
            txtApellidos.Name = "txtApellidos";
            txtApellidos.Size = new System.Drawing.Size(100, 20);
            txtApellidos.TabIndex = 1;
            txtApellidos.Text = unTutor.apellidos;
            txtApellidos.Enabled = false;
            txtApellidos.MaxLength = 100;
            // 
            // txtNombres
            // 
            txtNombres.Location = new System.Drawing.Point(178, 90);
            txtNombres.Name = "txtNombres";
            txtNombres.Size = new System.Drawing.Size(100, 20);
            txtNombres.TabIndex = 2;
            txtNombres.Text = unTutor.nombres;
            txtNombres.Enabled = false;
            txtNombres.MaxLength = 100;
            // 
            // txtDomicilio
            // 
            txtDomicilio.Location = new System.Drawing.Point(178, 116);
            txtDomicilio.Name = "txtDomicilio";
            txtDomicilio.Size = new System.Drawing.Size(100, 20);
            txtDomicilio.TabIndex = 3;
            txtDomicilio.Text = unTutor.domicilio;
            txtDomicilio.Enabled = false;
            txtDomicilio.MaxLength = 100;
            // 
            // txtTel
            // 
            txtTel.Location = new System.Drawing.Point(178, 142);
            txtTel.Name = "txtTel";
            txtTel.Size = new System.Drawing.Size(100, 20);
            txtTel.TabIndex = 4;
            txtTel.Text = unTutor.telefono1;
            txtTel.Enabled = false;
            txtTel.MaxLength = 15;
            // 
            // txtTel2
            // 
            txtTel2.Location = new System.Drawing.Point(178, 168);
            txtTel2.Name = "txtTel2";
            txtTel2.Size = new System.Drawing.Size(100, 20);
            txtTel2.TabIndex = 5;
            txtTel2.Text = unTutor.telefono2;
            txtTel2.Enabled = false;
            txtTel2.MaxLength = 15;
            // 
            // txtMail
            // 
            txtMail.Location = new System.Drawing.Point(178, 194);
            txtMail.Name = "txtMail";
            txtMail.Size = new System.Drawing.Size(100, 20);
            txtMail.TabIndex = 6;
            txtMail.Text = unTutor.mail;
            txtMail.Enabled = false;
            txtMail.MaxLength = 250;
            // 
            // txtLugarTrabajo
            // 
            txtLugarTrabajo.Location = new System.Drawing.Point(178, 220);
            txtLugarTrabajo.Name = "txtLugarTrabajo";
            txtLugarTrabajo.Size = new System.Drawing.Size(100, 20);
            txtLugarTrabajo.TabIndex = 7;
            txtLugarTrabajo.Text = unTutor.lugarTrabajo;
            txtLugarTrabajo.Enabled = false;
            txtLugarTrabajo.MaxLength = 250;
            // 
            // txtTelTrabajo
            // 
            txtTelTrabajo.Location = new System.Drawing.Point(178, 246);
            txtTelTrabajo.Name = "txtTelTrabajo";
            txtTelTrabajo.Size = new System.Drawing.Size(100, 20);
            txtTelTrabajo.TabIndex = 8;
            txtTelTrabajo.Text = unTutor.telefonoTrabajo;
            txtTelTrabajo.Enabled = false;
            txtTelTrabajo.MaxLength = 15;
            // 
            // lblDni
            // 
            lblDni.AutoSize = true;
            lblDni.Location = new System.Drawing.Point(6, 41);
            lblDni.Name = "lblDni";
            lblDni.Size = new System.Drawing.Size(35, 13);
            lblDni.TabIndex = 9;
            lblDni.Text = "DNI";
            // 
            // lblApellidos
            // 
            lblApellidos.AutoSize = true;
            lblApellidos.Location = new System.Drawing.Point(6, 71);
            lblApellidos.Name = "lblApellidos";
            lblApellidos.Size = new System.Drawing.Size(35, 13);
            lblApellidos.TabIndex = 10;
            lblApellidos.Text = "Apellidos";
            // 
            // lblNombres
            // 
            lblNombres.AutoSize = true;
            lblNombres.Location = new System.Drawing.Point(6, 97);
            lblNombres.Name = "lblNombres";
            lblNombres.Size = new System.Drawing.Size(35, 13);
            lblNombres.TabIndex = 11;
            lblNombres.Text = "Nombres";
            // 
            // lblDomicilio
            // 
            lblDomicilio.AutoSize = true;
            lblDomicilio.Location = new System.Drawing.Point(6, 123);
            lblDomicilio.Name = "lblDomicilio";
            lblDomicilio.Size = new System.Drawing.Size(35, 13);
            lblDomicilio.TabIndex = 12;
            lblDomicilio.Text = "Domicilio";
            // 
            // lblTel
            // 
            lblTel.AutoSize = true;
            lblTel.Location = new System.Drawing.Point(6, 149);
            lblTel.Name = "lblTel";
            lblTel.Size = new System.Drawing.Size(35, 13);
            lblTel.TabIndex = 13;
            lblTel.Text = "Telefono1";
            // 
            // lblTel2
            // 
            lblTel2.AutoSize = true;
            lblTel2.Location = new System.Drawing.Point(6, 175);
            lblTel2.Name = "lblTel2";
            lblTel2.Size = new System.Drawing.Size(35, 13);
            lblTel2.TabIndex = 14;
            lblTel2.Text = "Telefono2";
            // 
            // lblMail
            // 
            lblMail.AutoSize = true;
            lblMail.Location = new System.Drawing.Point(6, 201);
            lblMail.Name = "lblMail";
            lblMail.Size = new System.Drawing.Size(35, 13);
            lblMail.TabIndex = 15;
            lblMail.Text = "Mail";
            // 
            // lblLugarTrabajo
            // 
            lblLugarTrabajo.AutoSize = true;
            lblLugarTrabajo.Location = new System.Drawing.Point(6, 227);
            lblLugarTrabajo.Name = "lblLugarTrabajo";
            lblLugarTrabajo.Size = new System.Drawing.Size(35, 13);
            lblLugarTrabajo.TabIndex = 16;
            lblLugarTrabajo.Text = "Lugar de Trabajo";
            // 
            // lblTelTrabajo
            // 
            lblTelTrabajo.AutoSize = true;
            lblTelTrabajo.Location = new System.Drawing.Point(6, 253);
            lblTelTrabajo.Name = "lblTelTrabajo";
            lblTelTrabajo.Size = new System.Drawing.Size(35, 13);
            lblTelTrabajo.TabIndex = 17;
            lblTelTrabajo.Text = "Telefono del Trabajo";
            if (name == "    +")
            {
                txtApellidos.Enabled = true;
                txtDni.Enabled = true;
                txtDomicilio.Enabled = true;
                txtLugarTrabajo.Enabled = true;
                txtMail.Enabled = true;
                txtNombres.Enabled = true;
                txtTel.Enabled = true;
                txtTel2.Enabled = true;
                txtTelTrabajo.Enabled = true;
            }
            nuevoTutor.Controls.Add(e);
            nuevoTutor.Controls.Add(t);
            nuevoTutor.Controls.Add(b);
            nuevoTutor.Controls.Add(lblTelTrabajo);
            nuevoTutor.Controls.Add(lblLugarTrabajo);
            nuevoTutor.Controls.Add(lblMail);
            nuevoTutor.Controls.Add(lblTel2);
            nuevoTutor.Controls.Add(lblTel);
            nuevoTutor.Controls.Add(lblDomicilio);
            nuevoTutor.Controls.Add(lblNombres);
            nuevoTutor.Controls.Add(lblApellidos);
            nuevoTutor.Controls.Add(lblDni);
            nuevoTutor.Controls.Add(txtTelTrabajo);
            nuevoTutor.Controls.Add(txtLugarTrabajo);
            nuevoTutor.Controls.Add(txtMail);
            nuevoTutor.Controls.Add(txtTel2);
            nuevoTutor.Controls.Add(txtTel);
            nuevoTutor.Controls.Add(txtDomicilio);
            nuevoTutor.Controls.Add(txtNombres);
            nuevoTutor.Controls.Add(txtApellidos);
            nuevoTutor.Controls.Add(txtDni);
        }
    }
}
